Skip to content

docs(trtllm): correct the UCX env-var note and the EFA image facts on 1.4.0 - #13049

Merged
pvijayakrish merged 3 commits into
release/1.4.0from
dagil-nvidia/cp-trtllm-kvcache-doc-140
Aug 12, 2026
Merged

docs(trtllm): correct the UCX env-var note and the EFA image facts on 1.4.0#13049
pvijayakrish merged 3 commits into
release/1.4.0from
dagil-nvidia/cp-trtllm-kvcache-doc-140

Conversation

@dagil-nvidia

@dagil-nvidia dagil-nvidia commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Adapted port of #13048. The page sits at a different path on this branch, and the release-branch copy is staler than main in a way that changes the fix, so this is not a clean pick.

1. The TRTLLM_USE_UCX_KVCACHE note said the opposite of the truth

Three deployments differing only in that variable, transceiver class read from each startup log:

Deployment engine backend env var observed transceiver
A DEFAULT none NixlTransferAgent ... using NIXL backend: UCX
B DEFAULT TRTLLM_USE_UCX_KVCACHE=1 UcxConnectionManager
C UCX none UcxConnectionManager

B and C are the same, so the variable does select direct UCX.

2. The EFA image facts were wrong, and that is load-bearing here

This branch says the pre-built EFA image is AMD64 only and that no pre-built ARM64 image is published. Both are false. Verified against the registry:

Tag Architectures
1.3.1-efa amd64, arm64
1.3.0-efa amd64, arm64
1.2.1-efa-amd64 amd64, arm64

1.2.1-efa-amd64 is multi-arch despite its suffix. This is not a cosmetic correction: the page told ARM64 readers the host mount was their only option, so the warning below would otherwise leave them with no path at all. Main already carries the corrected text and this brings the branch in line with it.

3. The ARM64 host mount breaks LIBFABRIC

With backend: NIXL and TRTLLM_NIXL_KVCACHE_BACKEND=LIBFABRIC, mounting the host /opt/amazon/efa makes NIXL fail to register CUDA VRAM with fi_mr_reg failed: Bad address. TensorRT-LLM asserts immediately after and both workers enter CrashLoopBackOff. Removing the mount and using the SDK in the pre-built -efa image makes the identical deployment serve on the identical nodes.

The mount stays documented with a warning scoped to that backend, rather than deleted, since it is still how you keep the SDK in step with the host driver.

Notes

Docs only. The relative link to Release Artifacts was repointed to this branch layout and the target exists. This converges the page toward main, which is the direction #12950 takes the tree anyway.


Open in Devin Review

… 1.4.0

Adapted port of the main-side fix. The page lives at a different path on this
branch, and the release-branch copy is staler than main in a way that changes
the fix, so this is not a clean pick.

Three corrections:

The TRTLLM_USE_UCX_KVCACHE note stated the opposite of the actual behavior.
Setting it with cache_transceiver_config.backend: DEFAULT does select direct
UCX and is equivalent to backend: UCX; both produce a UcxConnectionManager.

The EFA image was described as AMD64 only, with the claim that no pre-built
ARM64 image is published. Both are false. The -efa tags are multi-arch
manifests covering amd64 and arm64, confirmed against the registry, including
1.2.1-efa-amd64 despite its suffix. This matters here because the page told
ARM64 readers the host mount was their only option.

The ARM64 host mount breaks NIXL LIBFABRIC CUDA VRAM registration with
fi_mr_reg failed: Bad address, asserting TensorRT-LLM and putting both workers
into CrashLoopBackOff. It is kept documented with a warning scoped to that
backend, and the pre-built image is now a real alternative to point at rather
than one the page denied existed.

Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia
dagil-nvidia requested a review from a team as a code owner August 11, 2026 21:17
@github-actions github-actions Bot added docs documentation Improvements or additions to documentation labels Aug 11, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment on lines +46 to +49
nvcr.io/nvidia/ai-dynamo/tensorrtllm-runtime:1.3.0-efa
```

On 1.2.1 the same image is tagged `1.2.1-efa-amd64`. Despite the suffix that tag is a multi-arch manifest covering AMD64 and ARM64; the name was corrected to `-efa` in 1.3.0. Pull the tag exactly as written, since `1.2.1-efa` was never published.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Recommended image tag lags the branch version and other docs still cite the AMD64-suffixed tag

The example tag is 1.3.0-efa, which matches the current stable inventory in docs/fern/reference/release-artifacts.mdx:96 even though this branch is versioned 1.4.0 (Cargo.toml:38). If a 1.4.0 EFA image is published for this release branch, this snippet will be stale on day one. Also, other pages still describe 1.2.1-efa-amd64 as an AMD64 image (docs/fern/kubernetes/cloud-providers/eks/eks.mdx:238, docs/fern/kubernetes/disagg-communication-guide.md:305), so the multi-arch correction made here is only partially applied across the docs set.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +65 to +68
> [!WARNING]
> Do not use this host mount with the LIBFABRIC backend on ARM64 / GB200. With `cache_transceiver_config.backend: NIXL` and `TRTLLM_NIXL_KVCACHE_BACKEND=LIBFABRIC`, mounting the host `/opt/amazon/efa` makes NIXL fail to register CUDA VRAM with `fi_mr_reg failed: Bad address`. TensorRT-LLM asserts immediately after, and both the prefill and decode workers enter `CrashLoopBackOff`.
>
> Use the pre-built `-efa` image instead. Removing the mount and relying on the EFA SDK shipped in that image makes an otherwise identical deployment serve inference on the same pair of nodes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 New warning references a backend value not otherwise documented on this page

The warning uses cache_transceiver_config.backend: NIXL, but the rest of the page only documents DEFAULT and UCX for that key, with the NIXL sub-backend selected via TRTLLM_NIXL_KVCACHE_BACKEND. Readers may be unsure whether NIXL is a valid literal for cache_transceiver_config.backend; a short clarification (or using DEFAULT if that is what was actually tested) would avoid ambiguity.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/ok to test 7d0805e

Replaces the hand-written NOTE in this cherry-pick with the table Chi Xing
landed on main in #13015, so the release branch matches main rather than
carrying a second, differently-worded correction of the same defect.

Both fix the inversion that 6590511 reports. His version is the better one: it
documents all four TRTLLM_USE_*_KVCACHE variables and their precedence rather
than only the UCX one, states the not-set case, and cites
CacheTransceiverConfig._resolve_default_backend so the claim can be rechecked
against a specific TensorRT-LLM version.

Kept from the earlier revision: the sentence naming which transceiver class
each path logs. That is the part QA needed to tell the two apart from a worker
startup log, and #13015 does not carry it.

The file lives at a different path on this branch, so this is an adapted port
rather than a clean pick.

Signed-off-by: Dan Gil <dagil@nvidia.com>
@pvijayakrish
pvijayakrish merged commit 1132796 into release/1.4.0 Aug 12, 2026
87 of 88 checks passed
@pvijayakrish
pvijayakrish deleted the dagil-nvidia/cp-trtllm-kvcache-doc-140 branch August 12, 2026 21:41
dagil-nvidia added a commit that referenced this pull request Aug 14, 2026
Re-snapshot docs/ from main (46 further commits since the first snapshot),
re-apply the release ledger at the new paths - the 1.4.0 image-tag pins,
the shipped-behavior reference sync (#12983), the CKF metric caveats
(#13149), and the UCX/EFA facts (#13049) - and sync docs CI plus both
READMEs from main so no link targets the deleted old layout.

Promote v1.4.0 to current release across the docs values: releases.data.ts
(CURRENT_* consts, v1.4.0 release entry with shipped pins SGLang 0.5.16 /
TRT-LLM 1.3.0rc22 / vLLM 0.26.0 / NIXL 1.3.0-1.3.2 / UCX 1.21.x, CUDA rows,
artifact tags) with regenerated reference pages, and bump copy-paste
container tags in install guides (EN/zh-CN), READMEs, profiler and guide
examples. Recipe-mirroring pages keep their deliberate validation pins.

Signed-off-by: Dan Gil <dagil@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs documentation Improvements or additions to documentation size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants